CloudWatch Logs Insights で、 Lambda の実行回数とコールドスタート回数を調べる
CloudWatch Logs Insights で、Lambdaの実行回数とコールドスタート回数を調べてみました。
おすすめの方
- CloudWatch Logs Insights で、Lambdaの実行回数とコールドスタート回数を調べたい方
Lambdaを適当に起動する
同じLambdaを何度か実行しておきます。今回は実験のため、次の起動を行いました。
- LambdaA-deploy-1: 1回実行
- LambdaA-deploy-2: 2回実行
- LambdaA-deploy-3: 3回実行
CloudWatch Logs Insightsでクエリを実行する
REPORTのクエリを調べる
まずは、REPORTのクエリを調べて、上記の起動回数と一致していることを確認します、
fields @message
| filter @type == "REPORT"
| limit 100
| sort @timestamp asc
クエリの実行結果は下記です。合計数と「Init Duration」の記載件数は、期待通りですね。
- 合計数: 6件
- Init Durationの記載件数: 3件
Lambdaの実行回数とコールドスタート回数を調べる
次のクエリを実行します。REPORTを抜き出したあと、そのままカウントしたり、「@initDuration」をカウントしたりしています。
filter @type == "REPORT"
| stats
count(*) as total_invocations,
count(@initDuration > 0) as total_invocations_with_cold_start,
(count(@initDuration > 0) * 100) / count(*) as cold_start_percentage,
avg(@initDuration) as init_duration_avg_ms,
max(@initDuration) as init_duration_max_ms,
min(@initDuration) as init_duration_min_ms
| sort asc
クエリの実行結果は下記です。
項目名 | 意味 | 結果 |
---|---|---|
total_invocations | Lambdaの実行回数 | 6件 |
total_invocations_with_cold_start | コールドスタートの回数 | 3件 |
cold_start_percentage | コールドスタートの割合 | 50% |
init_duration_avg_ms | コールドスタートの時間(平均) | 456.5133ms |
init_duration_max_ms | コールドスタートの時間(最大) | 471.11ms |
init_duration_min_ms | コールドスタートの時間(最低) | 446.47ms |
おまけ: とある API の Lambda Authorizer を調べてみる
対象期間は7日間です。次の結果になりました。コールドスタートの割合は約15%でした。
さいごに
CloudWatch Logs Insights で、Lambdaの実行回数とコールドスタート回数を調べてみました。調べたい方の参考になれば幸いです。